{% macro get_ipv4_loopback_address(interfaces, loopbackname) -%}
{% set L = namespace(ip=None) %}
{% for name, prefix in interfaces|pfx_filter %}
{%   if name == loopbackname %}
{%     if prefix | ipv4 %}
{%       set L.ip = prefix %}
{%     endif %}
{%   endif %}
{% endfor %}
{{ L.ip }}
{%- endmacro %}

{% macro get_ipv6_loopback_address(interfaces, loopbackname) -%}
{% set L = namespace(ip=None) %}
{% for name, prefix in interfaces|pfx_filter %}
{%   if name == loopbackname %}
{%     if prefix | ipv6 %}
{%       set L.ip = prefix %}
{%     endif %}
{%   endif %}
{% endfor %}
{{ L.ip }}
{%- endmacro %}

{% macro get_vnet_interfaces(interfaces) -%}
{% set L = namespace(intfs=[]) %}
{% set vnet_intfs = [] %}
{% for (key, metadata) in interfaces.items() %}
{%   if "vnet_name" in metadata %}
{%     set vnet_intfs = vnet_intfs.append(key) %}
{%   endif %}
{% endfor %}
{% set L.intfs = vnet_intfs %}
{{ L.intfs }}
{%- endmacro %}
